curl --request POST \
--url https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"active": true,
"createdAt": "2023-11-07T05:31:56Z",
"events": [
"treasury.payout.awaiting_approval"
],
"id": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"url": "<string>",
"workspaceId": "<string>",
"consecutiveFailures": 123,
"pausedAt": "2023-11-07T05:31:56Z"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}`POST /api/v1/workspaces/{id}/webhooks/{webhookId}/reactivate`
Reactivate an auto-paused webhook. Resets consecutive_failures + paused_at. API keys require webhooks_manage and current manage_webhooks permission. Human sessions require manage_webhooks or manage_credentials.
curl --request POST \
--url https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tetrafi.io/api/v1/workspaces/{workspaceId}/webhooks/{webhookId}/reactivate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"active": true,
"createdAt": "2023-11-07T05:31:56Z",
"events": [
"treasury.payout.awaiting_approval"
],
"id": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"url": "<string>",
"workspaceId": "<string>",
"consecutiveFailures": 123,
"pausedAt": "2023-11-07T05:31:56Z"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}{
"docUrl": "<string>",
"error": "<string>",
"message": "<string>",
"retryable": true,
"timestamp": 123,
"details": {
"capabilityBlockers": [
{
"code": "WORKSPACE_NOT_FOUND",
"estimate": "minutes",
"message": "<string>",
"unlockStep": "finish_onboarding",
"currentlyDue": [
"<string>"
]
}
],
"conflicts": [
"<string>"
],
"field": "<string>",
"reason": "<string>",
"remediation": "<string>",
"retryAfter": "PT120S",
"value": "<string>"
},
"next": {
"kind": "order"
},
"requestId": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The workspace the request acts in. An API key bound to a workspace implies it: omit the header, or send that same id (another id answers 403 WORKSPACE_SCOPE_MISMATCH). A member session must send it (400 MISSING_WORKSPACE without it).
Response
Webhook reactivated
A webhook configuration for a workspace.
New values may be added; treat unknown values as other.
treasury.payout.awaiting_approval, treasury.payout.completed, treasury.payout.failed, treasury.payout.cancelled, treasury.fiat_leg.planned, treasury.fiat_leg.awaiting_approval, treasury.fiat_leg.payout_held, treasury.fiat_leg.dispatching, treasury.fiat_leg.uncertain, treasury.fiat_leg.in_transit, treasury.fiat_leg.held_by_provider, treasury.fiat_leg.overdue, treasury.fiat_leg.manual_review, treasury.fiat_leg.settled, treasury.fiat_leg.returned, treasury.fiat_leg.returned_after_settlement, treasury.fiat_leg.refunding, treasury.fiat_leg.refunded, treasury.fiat_leg.cancelled, treasury.fiat_leg.refused, treasury.bank_deposit.declared, treasury.bank_deposit.overdue, treasury.bank_deposit.manual_review, treasury.bank_deposit.credited, treasury.bank_deposit.withdrawn_by_user, treasury.bank_deposit.history_unreadable, treasury.bank_deposit.history_recovered, treasury.fiat_leg.awaiting_funds, treasury.fiat_leg.funds_received, treasury.fiat_leg.price_beyond_bound, treasury.fiat_leg.expired_unfunded, treasury.fiat_leg.late_funds, treasury.transfer.submitted, treasury.transfer.awaiting_approval, treasury.transfer.rejected, treasury.transfer.completed, treasury.transfer.failed, treasury.transfer.cancelled, treasury.transfer.custodian_approval_relayed, treasury.transfer.expired, treasury.transfer.replaced, treasury.transfer.confirmation_threshold_set, treasury.run.draft, treasury.run.waiting_for_funds, treasury.run.awaiting_approval, treasury.run.ready, treasury.run.running, treasury.run.waiting, treasury.run.reconciling, treasury.run.needs_review, treasury.run.paused, treasury.run.succeeded, treasury.run.partially_succeeded, treasury.run.failed, treasury.run.recovering, treasury.run.recovered, treasury.run.cancelled, treasury.step.pending, treasury.step.ready, treasury.step.dispatching, treasury.step.waiting, treasury.step.reconciling, treasury.step.needs_review, treasury.step.paused, treasury.step.succeeded, treasury.step.partially_succeeded, treasury.step.failed, treasury.step.cancelled, treasury.step.custodian_cancel_requested, treasury.step.confirmation_threshold_set, treasury.step.custodian_approval_relayed, treasury.step.custodian_cancel_overridden, treasury.approval.requested, treasury.approval.expiring, treasury.approval.approved, treasury.approval.denied, treasury.approval.expired, treasury.destination.retired, treasury.address_book.destination_revoked, treasury.workspace.frozen, treasury.vault.frozen, treasury.custodian.frozen, treasury.balance.low, treasury.balance.recovered, treasury.statement.ready, treasury.automation.created, treasury.automation.updated, treasury.automation.activated, treasury.automation.returned_to_review, treasury.automation.paused, treasury.automation.resumed, treasury.automation.archived, treasury.agent.envelope.created, treasury.agent.envelope.updated, treasury.agent.kill_switch.activated, treasury.agent.session_signer.granted, treasury.agent.session_signer.revoked, treasury.agent.sponsor.changed, treasury.agent.rebalancer.run, treasury.agent.payment.authorized, treasury.agent.payment.settled, treasury.agent.payment.refused, treasury.agent.payment.received, order.updated, settlement.failed, settlement.retried, settlement.disputed, member.invited, member.joined, member.added, member.removed, api_key.rotated, api_key.revoked, api_key.expiring_soon, lp.enabled, lp.disabled, lp.sla_breach, kyb.expiring, kyb.expired, kyb.renewed, kyc.expiring, compliance.sanctions.flag_added, compliance.event, credit.updated, affiliation.invited, affiliation.accepted, affiliation.revoked, bilateral.requested, bilateral.accepted, direct_user.created, direct_user.updated, direct_user.invited, direct_user.suspended, direct_user.verification.pending, direct_user.verification.verified, direct_user.verification.rejected, wallet.session_signer.granted, wallet.session_signer.revoked, webhook.subscription.paused, webhook.test Count of consecutive full-retry-schedule failures. Reset to 0 on any successful delivery. Reaching 5 pauses the subscription.
Set when the subscription is auto-paused after persistent delivery failure. Cleared when the subscription is reactivated.